package com.LC.BinaryTreeDemo;
//Description
//
//        小Y同学在上了大学之后觉得自己解放了，于是他想要尝试玩各种游戏，但是慢慢的他发现steam的游戏他都玩不来，没有办法于是他又回归了从小玩到大的英雄联盟，在经历了日日夜夜的单排之后，小Y同学觉得来下棋，但是他之前一直不知道吃利息这个操作，所以他一直卡在铂金上不去，某一天室友告诉了他之后，他才知道要吃利息，现在小Y同学决定来问问你要怎么算利息。
//
//        我们先在来简化一下规则，不考虑连胜或者连败的经济和其他因素的影响，比如海克斯的利滚利等。
//
//        我们只考虑，每回合结束后可以多5金币，每10块钱可以多1块钱（最多只考虑50块钱吃5块钱利息）。先计算利息，再加上多的5金币
//
//        小Y想知道平稳的情况下怎么安排利息最合理，所以他想问你，假设知道开局给定的初始金币总量，n轮以后有多少金币。
//        Input
//        两个整数k,nk,n,第一个整数k(0 \leq k \leq 1000)k(0≤k≤1000)表示初始的金币量，第二个整数n(1 \leq n \leq 100000 )n(1≤n≤100000)表示要经过多少轮
//
//
//        Output

import java.util.Scanner;

//public class Main {
//    public static int main(String[] args) {
//        Scanner sc = new Scanner(System.in);
//        int n = sc.nextInt();
//        int m = sc.nextInt();
//        int sum =n;
//        for(int i = 0; i <m;i++){
//
//            sum = sum + sum/10;
//            sum = 5+sum;
//        }
//        System.out.printf("%d",sum);
//       return 0;
//    }
//}
public class Main {
    public static int main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] array = new int[n];
        int max =-100;
        for(int i = 0; i <n;i++){
            int m;
             m = sc.nextInt();
            array[i] = m;
            if(array[i]>max){
                max=array[i];
            }
        }
        System.out.println(max);
        return 0;
    }
}